package
{
	import flash.display.MovieClip;
	import flash.events.KeyboardEvent;
	import flash.geom.Point;
	import flash.utils.Timer;
	import flash.events.TimerEvent;
	import flash.ui.Keyboard;
	
	/**
	 * Classe de Pacman:  l'homme qui mange plus vite que son ombre
	 * @author anthony & oussama
	 */
	public class Pacman extends MovieClip
	{
		
		// Constantes
		public static const LARGEUR:uint = 14;
		public static const HAUTEUR:uint = 14;
		
		/**
		 * propriètes de pacman
		 */
		
		public var estInvincible:Boolean = false;
		public var posCourante:Point;
		public var invincibleTime:int;
		public var dirCourante:Direction;
		public var nbrDeFontomeKill:uint;
		
		/**
		 * indice de direction
		 */
		
		public static const NORD:uint = 0;
		public static const SUD:uint = 1;
		public static const EAST:uint = 2;
		public static const WEST:uint = 3;
		
		/**
		 * timer du Super Power
		 */
		public var tempsSuperPower:Timer = new Timer(8000, 1);
		
		public function Pacman(position:Point, invincible:Boolean, direction:Direction)
		{
			super();
			
			this.dirCourante = direction;
			this.estInvincible = invincible;
			this.posCourante = position;
			
			//this.addEventListener(KeyboardEvent.KEY_DOWN, gestionTouches);
		}
		
		// Pacman est invincible.
		public function setInvincible(estInvincible:Boolean):void
		{
			this.estInvincible = estInvincible;
		}
		
		/**
		 * Change la direction de Pacman et tourne le MovieClip
		 * pour faire face à la bonne direction
		 * @param	dir
		 */
		public function changerDirection(dir:Direction):void
		{
			// clockwise : 0~180
			// counter clockwise : -180~0
			
			this.dirCourante = dir;
			
			var angle:Number;
			if (dir == Direction.NORD)
				angle = 90;
			else if (dir == Direction.SUD)
				angle = -90;
			else if (dir == Direction.EAST)
				angle = 180;
			else if (dir == Direction.WEST)
				angle = 0;
			
			this.rotation = angle;
		
		}
		
		// fonction début invincible
		public function startInvincible():void
		{
			this.nbrDeFontomeKill = 0;
			this.estInvincible = true;
			tempsSuperPower.addEventListener(TimerEvent.TIMER, actionFinTimer);
			tempsSuperPower.start();
			
			//prevenir les Fontômes du pouvoir de pacman
			/*for (var fnt:Fontome in Partie.tabFontome)
			{
				fnt.allerVersPacman = false;
			}*/
		
		}
		
		// action après 8s du power de Pacman
		private function actionFinTimer(evenement:TimerEvent):void
		{
			this.estInvincible = false;
			
			// prevenir les Fontômes du pouvoir de pacman
			/*for (var fnt:Fontome in Partie.tabFantome)
			{
				fnt.allerVersPacman = true;
			}*/
			
			tempsSuperPower.stop();
		}
	}
}